The present invention relates generally to interpreting jobs written in one of a plurality of page description languages for printing with a printing apparatus, and more particularly to a technique for swapping interpretation context files within a printing apparatus server to optimize the use of multiple interpreters therein.
Personal computers have become commonplace on the desks of most office workers. Typically, much of the work product of such computers is intended to be transformed into hardcopy via a printer using digital imaging technology. A typical printer configuration for this purpose comprises a dedicated printer coupled to the personal computer ("PC"). However, printers used for this purpose are typically small laser printers which have limited functions and features such as a limited tray capacity which restricts the number and types of copy sheets that can be used to make prints on, or which do not have a finishing capability, etc. More importantly small laser printers also typically handle only one page description language.
On the other hand, larger high speed laser printers normally have a great deal of finishing and copy sheet capability which would allow the PC user to have, for example, custom printing and finishing of his work product, an option which for many PC users would be desirable. In practice, the PCs can be used advantageously with a network printing system of the type combining a number of client inputs, such as the PCs, or the like, and one or more printer outputs. In one example of such network printing systems, a client at one of the inputs sends electronic documents that comprise a job over a local area network (LAN) to one of the printers selected for printing the job. In particular, LANs provide a means by which users running dedicated processors are able to share resources such as printers, file servers and scanners. Integration of shared resources has been a problem addressed by LAN managers. LAN managers have made different network protocols such as Ethernet and Token Ring transparent to devices running different network protocols. LANs also have a variety of print drivers emitting different page description languages (PDLs), which are directed to specific printer devices.
A PDL is a method of describing printed page(s) in a printer independent format. A PDL establishes as interface between a print driver or client and a print server or printer. No one standard PDL presently exists, and as a result a number of industry standards have emerged. Currently existing PDLs include PostScript.RTM. ("PS"), Hewlett Packard Printer Control Language ("HP-PCL") and Interpress Page Description Language. Documentation regarding these three languages can be found in the following references, the pertinent portions of which are incorporated herein.
PostScript.RTM. Language Reference Manual, Second Edition, Addison-Wesley Publishing Co., 1990. PA1 PCL 5 Printer Language, Technical Reference Manual, First Edition, Hewlett Packard Co., 1990. PA1 Harrington, S. J. and Buckley, R. R., Interpress: The Source Book, Simon & Schuster, Inc., New York, N.Y., 1988. PA1 U.S. Pat. No. 4,833,596, Patentee: Buckland et al., Issued: May 23, 1989. PA1 U. S. Pat. No. 4,920,481, Patentee: Binkley et al., Issued Apr. 24, 1990. PA1 Deitel, H. M., An Introduction to Operating Systems, Revised First Edition, Addison-Wesley Publishing Co., 1984, pp. 169, 171, 485-488, 494, 512 and 582-584.
Xerox.RTM. Corporation presently is marketing a server for a printing apparatus, the server being referred to as the "DocuTech.TM. Manager Server" (DocuTech Manager Server is a trademark of Xerox Corp.) This server is adapted to translate a job written in a first PDL, such as PS or HP-PCL, into a second PDL, such as Interpress, for printing of the job on a Xerox.RTM. compatible printing apparatus. At the heart of the server are two interpreters, one of which is adapted to translate PS and the other of which is adapted to translate PCL. Each interpreter contains software, written by either Adobe.RTM. Systems Inc. or Peerless.RTM. Corp. to facilitate the translation process.
In the area of data processing systems it is known that a coprocessor can be employed to assist a main processing unit to perform some of the more time consuming data processing tasks. The following two references are examples of arrangements in which a host system is used advantageously in conjunction with a coprocessor:
The operation of a data processing system having a main storage area with an operating system can be further enhanced by a technique referred to as swapping. As is known, in AT&T labs Bell System UNIX.RTM. operating system processes are swapped to and from secondary storage as needed, thereby enabling a single computer CPU to be used simultaneously by a number of users each running some unique application program. As discussed by the following reference, systems exist in which core images can be swapped in and out of main storage in accordance with user demands.
It would be desirable to provide a server that obtains multiple PDL interpreter capability in an efficient and economical manner by exploiting certain advantageous data processing system features, such as coprocessing and swapping.